package com.iofile.jianwei;

import com.iofile.utils.RestTemplateUtils;
import org.springframework.stereotype.Service;

import java.util.List;
/**
 * @Author: Chenyw
 * @Date: 2022/08/08/15:13
 */

/**
 *
 * public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
 * 代码解释:
 * 　　Object src : 原数组
 *    int srcPos : 从元数据的起始位置开始
 * 　　Object dest : 目标数组
 * 　　int destPos : 目标数组的开始起始位置
 * 　　int length  : 要copy的数组的长度
 * System.arrayCopy(srcBytes,0,destBytes ,0,5)
 * 上面这段代码就是 : 创建一个一维空数组,数组的总长度为 12位,
 * 然后将srcBytes源数组中 从0位 到 第5位之间的数值 copy 到 destBytes目标数组中,在目标数组的第0位开始放置.
 */
@Service
public class OtherService {


    /**
     * 鉴伪接口
     * @param url
     * @return
     */
    public static String getJianweiResult(String url) {
//        byte[] data = RestTemplateUtils.getBytesByFile(url);
//        byte[] newdata = new byte[data.length-44];
//        System.arraycopy(data,44,newdata,0,data.length-44);
        return RestTemplateUtils.uploadFileByBytes("http://192.168.2.230:10000/spoof/pcm",RestTemplateUtils.getBytesByFile(url));
    }

    /**
     * 声纹接口
     * @param url
     * @return
     */
    public static String getShengwenResult(String url) {
//        byte[] data = RestTemplateUtils.getBytesByFile(url);
//        byte[] newdata = new byte[data.length-44];
//        System.arraycopy(data,44,newdata,0,data.length-44);
        if (RestTemplateUtils.getBytesByFile(url).length<1024*1024) {
            return RestTemplateUtils.uploadFileByBytes("http://192.168.2.230:10002/speaker/getSpeaker", RestTemplateUtils.getBytesByFile(url));
        }
        return "";
    }

    /**
     * 注册特定人接口
     */
    public static String register(String url,String personName){
        return RestTemplateUtils.register(personName,"http://192.168.2.230:10002/speaker/register", RestTemplateUtils.getBytesByFile(url));
    }

    /**
     * 范围筛选,特定人生效接口
     */
    public static String  speakerScope(String personNames){
        return RestTemplateUtils.speakerScope("http://192.168.2.230:10002/speaker/speakerScope", personNames);
    }

    /**
     * 返回音频特征
     */
    public static String computeRegister(String url){
        return RestTemplateUtils.uploadFileByBytes("http://192.168.2.230:10002/speaker/computeRegister",RestTemplateUtils.getBytesByFile(url));
    }


    /**
     * 更新
     */
    public static String updateSpeaker(String speakerName,String data){
        return RestTemplateUtils.updateSpeaker("http://192.168.2.230:10002/speaker/updateSpeaker",speakerName,data);
    }

    /**
     * 溯源
     */
    public static String suyuan(String url){
        return RestTemplateUtils.uploadFileByBytes("http://192.168.2.230:10001/suyuan/wav",RestTemplateUtils.getBytesByFile(url));
    }

}
